package com.uade.sessionBeans.impl;

import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.apache.log4j.Logger;

import com.uade.dao.UsuarioDAO;
import com.uade.dao.UsuarioDAOImpl;
import com.uade.entities.UsuarioEntity;
import com.uade.model.Usuario;
import com.uade.model.exceptions.LoginException;
import com.uade.sessionBeans.AdministradorUsuario;

/**
 * Session Bean implementation class AdministradorUsuarioBean
 */
@Stateless
public class AdministradorUsuarioBean implements AdministradorUsuario {

	@EJB
	UsuarioDAO usuarioDAO;

	/**
	 * Default constructor .
	 */
	public AdministradorUsuarioBean() {
		
	}

	// log
	private static Logger log = Logger
			.getLogger(AdministradorUsuarioBean.class);

	@Override
	public void altaUsuario(Usuario usuario) {

		usuarioDAO.create(new UsuarioEntity(usuario));

	}

	@Override
	public Usuario loginUsuario(String nombre, String pass)
			throws LoginException {

		Usuario usuario = new Usuario(0, nombre, null, pass, null, null, null);
		usuario.setPassword(pass);
		List<UsuarioEntity> usuarios = usuarioDAO.loginUsuario(usuario);
		String message = null;
		if (usuarios == null || usuarios.isEmpty()
				|| !usuarios.get(0).getUsuario().getNombre().equals(nombre)
				|| !usuarios.get(0).getUsuario().getPassword().equals(usuario.getPassword())) {
			message = "El nombre y o password son incorrectos";
			log.info(message);
			throw new LoginException(message);
		}

		return usuarios.get(0).getUsuario();
	}
}
